// 给你一个按 非递减顺序 排序的整数数组 nums，返回 每个数字的平方 组成的新数组，要求也按 非递减顺序 排序
// 思路，非递减数组的元素，平方后出现最大值只能在最左端或者最右端

function sortedSquares(nums) {
    let result = []
    let left = 0
    let right = nums.length - 1
    let index = nums.length - 1
    // 注意这里是<=
    while (left <= right) {
        let squireLeft = nums[left] * nums[left]
        let squireRight = nums[right] * nums[right]
        if (squireLeft < squireRight) {
            result[index] = squireRight
            right--
        } else {
            result[index] = squireLeft
            left++
        }
        index--
    }
    return result
}

console.log(sortedSquares([-5, 1, 2, 3, 6]))